{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "BspwgQKL3Na8"
      },
      "source": [
        "<font face=\"Times New Roman\" size=5><div dir=rtl align=center>\n",
        "<font face=\"Times New Roman\" size=5>\n",
        "In The Name of God\n",
        "</font>\n",
        "<br> <br>\n",
        "<img src=\"https://logoyar.com/content/wp-content/uploads/2021/04/sharif-university-logo.png\" alt=\"University Logo\" width=\"150\" height=\"150\">\n",
        "<br>\n",
        "<font face=\"Times New Roman\" size=4 align=center>\n",
        "Sharif University of Technology - Department of Computer\n",
        "</font>\n",
        "<br> <br>\n",
        "<font color=\"#008080\" size=5>\n",
        "Introduction to Machine Learning\n",
        "</font>\n",
        "\n",
        "<hr/> <br>\n",
        "<font color=\"#800080\" size=6>\n",
        "Chapter 2: Validation\n",
        "<br>\n",
        "</font>\n",
        "<br>\n",
        "<font face=\"Times New Roman\" size=4>\n",
        ":authors <br>\n",
        "<b>Peyman Naseri - Alireza Gargoori Motlaq - Alireza Heydari - Seyyed Alireza Ghazanfari</b>\n",
        "</font>\n",
        "<hr>\n",
        "</div></font>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "i6NrAXONPtcR"
      },
      "source": [
        "<font  size=5><div dir=ltr>\n",
        "<font face=\"Times New Roman\" color=\"#008080\" size=5>**Table of Contents**</font>\n",
        "<br>\n",
        "\n",
        "<font size=4>\n",
        "<ul>\n",
        "    <li>\n",
        "        <a href=\"#0\">\n",
        "            0. Dataset\n",
        "        </a>\n",
        "    </li>\n",
        "    <li>\n",
        "        <a href=\"#1\">\n",
        "            1. Validation\n",
        "        </a>\n",
        "    </li>\n",
        "    <ul>\n",
        "        <li>\n",
        "            <a href=\"#1-1\">\n",
        "                1-1. Accuracy\n",
        "            </a>\n",
        "        </li>\n",
        "        <li>\n",
        "            <a href=\"#1-2\">\n",
        "                1-2. Confusion Matrix\n",
        "            </a>\n",
        "        </li>\n",
        "        <ul>\n",
        "            <li>\n",
        "                <a href=\"#1-2-1\">1-2-1. Precision</a>\n",
        "            </li>\n",
        "            <li>\n",
        "                <a href=\"#1-2-2\">1-2-2. Recall</a>\n",
        "            </li>\n",
        "            <li>\n",
        "                <a href=\"#1-2-3\">1-2-3. F1 Score</a>\n",
        "            </li>\n",
        "        </ul>\n",
        "        <li>\n",
        "            <a href=\"#1-3\">\n",
        "                1-3. Precision/Recall Tradeoff\n",
        "            </a>\n",
        "        </li>\n",
        "        <li>\n",
        "            <a href=\"#1-4\">\n",
        "                1-4. ROC\n",
        "            </a>\n",
        "        </li>\n",
        "        <ul>\n",
        "            <li><a href=\"#1-4-1\">1-4-1. AUC</a></li>\n",
        "        </ul>\n",
        "    </ul>\n",
        "</ul>\n",
        "</div>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "sBzocXtIiTbu"
      },
      "source": [
        "<font face=\"Times New Roman\"><div id=\"0\">\n",
        "# <font color=\"#800080\" size=6>**0. Dataset**</font>\n",
        "</div>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ju9aCx5yAESj"
      },
      "source": [
        "##### <font color=\"#008080\" face=\"Times New Roman\" size=4> - Introduction to Dataset </font>\n",
        "\n",
        "<font face=\"Times New Roman\" size=3>\n",
        "The MNIST dataset includes 70,000 images of handwritten single digits.\n",
        "</font>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "gYuiA7fFAESk"
      },
      "source": [
        "##### <font color=\"#008080\" face=\"Times New Roman\" size=4> - Loading Dataset </font>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "id": "FybchF26AESk",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "ab454ada-927b-4159-cacc-5ca02fd4b138"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/usr/local/lib/python3.10/dist-packages/sklearn/datasets/_openml.py:968: FutureWarning: The default value of `parser` will change from `'liac-arff'` to `'auto'` in 1.4. You can set `parser='auto'` to silence this warning. Therefore, an `ImportError` will be raised from 1.4 if the dataset is dense and pandas is not installed. Note that the pandas parser may return different data types. See the Notes Section in fetch_openml's API doc for details.\n",
            "  warn(\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "dict_keys(['data', 'target', 'frame', 'categories', 'feature_names', 'target_names', 'DESCR', 'details', 'url'])"
            ]
          },
          "metadata": {},
          "execution_count": 1
        }
      ],
      "source": [
        "import numpy as np\n",
        "from sklearn.datasets import fetch_openml\n",
        "mnist = fetch_openml('mnist_784', version=1, as_frame=False)\n",
        "mnist.keys()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "0BrjWqO-AESk"
      },
      "source": [
        "##### <font color=\"#008080\" face=\"Times New Roman\" size=4> - Pre-Processing Dataset</font>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "-mpV4390AESl",
        "outputId": "8cb3365f-64f2-4183-94d7-09feb9b54887"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "(70000, 784) (70000,)\n"
          ]
        }
      ],
      "source": [
        "X, y = mnist[\"data\"], mnist[\"target\"]\n",
        "y = y.astype(np.uint8)\n",
        "print(X.shape, y.shape)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "m11X6nmeTZ3u"
      },
      "source": [
        "##### <font color=\"#008080\" face=\"Times New Roman\" size=4> - Visualizing Dataset</font>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 406
        },
        "id": "eAqfJGHATZ3w",
        "outputId": "914fa6d9-e96b-46f1-9896-d77c93f10eeb"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "%matplotlib inline\n",
        "import matplotlib as mpl\n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "def plot_digit(data):\n",
        "    image = data.reshape(28, 28)\n",
        "    plt.imshow(image, cmap = mpl.cm.binary,\n",
        "               interpolation=\"nearest\")\n",
        "    plt.axis(\"off\")\n",
        "\n",
        "\n",
        "digit = X[0]\n",
        "plot_digit(digit)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "JX1sSKYiTZ3x"
      },
      "source": [
        "<font face=\"Times New Roman\"><div id=\"1\">\n",
        "# <font color=\"#800080\" size=6>**1. Validation**</font>\n",
        "</div>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "DCicBNv3AESm"
      },
      "source": [
        "#### <font color=\"#008080\" face=\"Times New Roman\" size=4>**Binary Classifier Training**</font>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Bqk1_Ex4TZ3z",
        "outputId": "dee4611c-5b61-4f45-c15b-d77d5fc199e2"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([False, False, False, ..., False, False, False])"
            ]
          },
          "metadata": {},
          "execution_count": 4
        }
      ],
      "source": [
        "from sklearn.model_selection import train_test_split\n",
        "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)\n",
        "\n",
        "y_train_5 = (y_train == 5)\n",
        "y_test_5 = (y_test == 5)\n",
        "\n",
        "y_train_5"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "rZlZYEB_TZ30",
        "outputId": "89566936-495a-4fd4-da35-c805903d31cf"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "SVC(C=0.03, random_state=42)"
            ],
            "text/html": [
              "<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(C=0.03, random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(C=0.03, random_state=42)</pre></div></div></div></div></div>"
            ]
          },
          "metadata": {},
          "execution_count": 5
        }
      ],
      "source": [
        "from sklearn.svm import SVC\n",
        "\n",
        "svm_clf = SVC(kernel='rbf', C = 0.03, random_state=42)\n",
        "svm_clf.fit(X_train, y_train_5)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5OBBHU2-TZ31"
      },
      "source": [
        "#### <font color=\"#008080\" face=\"Times New Roman\" size=4>**Evaluation**</font>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "8QW4lldETZ32"
      },
      "source": [
        "##### <font color=\"#008080\" face=\"Times New Roman\" size=4> - Prediction</font>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "vnYPwexbTZ32",
        "outputId": "0fbe5233-8f8e-42c7-ecbe-205c6da3a2bd"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([ True])"
            ]
          },
          "metadata": {},
          "execution_count": 6
        }
      ],
      "source": [
        "svm_clf.predict([digit])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "oC7HRPGlTZ33"
      },
      "source": [
        "<font face=\"Times New Roman\"><div id=\"1-1\">\n",
        "## <font color=\"#800080\" size=6>**1-1. Accuracy**</font>\n",
        "</div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "mK9o0FrOTZ34",
        "outputId": "9c56b1ea-2858-447f-bac7-3a70089b99ed"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Accuracy of the 5 classifier is: 0.9729714285714286\n"
          ]
        }
      ],
      "source": [
        "from sklearn.metrics import accuracy_score\n",
        "\n",
        "svm_clf_predictions = svm_clf.predict(X_test)\n",
        "accuracy = accuracy_score(y_test_5, svm_clf_predictions)\n",
        "\n",
        "print(\"Accuracy of the 5 classifier is:\", accuracy)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5_ZNUsQPTZ35",
        "outputId": "d3e302b7-ae85-4d41-d0fc-3835c80a2269"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.9081714285714285"
            ]
          },
          "metadata": {},
          "execution_count": 8
        }
      ],
      "source": [
        "# upper code had good acc but see this classifier too. It classify each input as a not 5 number.\n",
        "from sklearn.base import BaseEstimator\n",
        "\n",
        "class Never5Classifier(BaseEstimator):\n",
        "    def fit(self, X, y=None):\n",
        "        pass\n",
        "    def predict(self, X):\n",
        "        return np.zeros((len(X), 1), dtype=bool)\n",
        "\n",
        "never_5_clf = Never5Classifier()\n",
        "never_5_clf_predictions = never_5_clf.predict(X_test)\n",
        "# pay attention about 10% of inputs are 5 so we should get around 90% accuracy for this one too.\n",
        "accuracy_score(y_test_5, never_5_clf_predictions)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "i6v4gfx6TZ36"
      },
      "source": [
        "<font face=\"Times New Roman\"><div id=\"1-2\">\n",
        "## <font color=\"#800080\" size=6>**1-2. Confusion Matrix**</font>\n",
        "</div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "jImOYmmNTZ37",
        "outputId": "3a5fd8b1-39e0-430f-acbc-b85d585d9246"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[[15887     6]\n",
            " [  467  1140]]\n"
          ]
        }
      ],
      "source": [
        "from sklearn.metrics import confusion_matrix\n",
        "# confusion matrix\n",
        "#  -----------------\n",
        "# |   TN   |  FP    |\n",
        "# ------------------\n",
        "# |   FN   |  TP    |\n",
        "#  -----------------\n",
        "svm_confusion_matrix = confusion_matrix(y_test_5, svm_clf_predictions)\n",
        "print(svm_confusion_matrix)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "E5LZv8WxAESl"
      },
      "source": [
        "<font face=\"Times New Roman\"><div id=\"1-2-1\">\n",
        "### <font color=\"#800080\" size=5>**1-2-1. Precision**</font>\n",
        "Also called Specificity\n",
        "</div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "RTVoh5NyTZ39",
        "outputId": "63925b82-997f-431d-c2e5-da24635250cb"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Precision = 0.9943045563549161\n"
          ]
        }
      ],
      "source": [
        "# precision = TP / (TP + FP)\n",
        "from sklearn.metrics import precision_score\n",
        "\n",
        "svm_y_train_pred = svm_clf.predict(X_train)\n",
        "print('Precision =', precision_score(y_train_5, svm_y_train_pred))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "yaJbQQ7ZTZ3-"
      },
      "source": [
        "<font face=\"Times New Roman\"><div id=\"1-2-2\">\n",
        "### <font color=\"#800080\" size=5>**1-2-2. Reall**</font>\n",
        "Also called Sensitivity\n",
        "</div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ph62HaubTZ3_",
        "outputId": "819ab226-50d8-45d0-e25f-77b292e321a4"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Recall = 0.704844878878028\n"
          ]
        }
      ],
      "source": [
        "# recall = TP / (TP + FN)\n",
        "from sklearn.metrics import recall_score\n",
        "\n",
        "print('Recall =', recall_score(y_train_5, svm_y_train_pred))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "c2jqrrMnTZ4A"
      },
      "source": [
        "<font face=\"Times New Roman\"><div id=\"1-2-3\">\n",
        "### <font color=\"#800080\" size=5>**1-2-3. F1 Score**</font>\n",
        "</div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "inUkmwtTTZ4A",
        "outputId": "b26437fb-f8d5-4945-8514-a823f5693f9e"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "F1_score = 0.8249191743347426\n"
          ]
        }
      ],
      "source": [
        "# f1_score = (2 * precision * recall) / (precision + recall)\n",
        "from sklearn.metrics import f1_score\n",
        "\n",
        "print(\"F1_score =\", f1_score(y_train_5, svm_y_train_pred))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KvDXfx7DTZ4B"
      },
      "source": [
        "<font face=\"Times New Roman\"><div id=\"1-3\">\n",
        "## <font color=\"#800080\" size=6>**1-3. Precision/Recall TradeOff**</font>\n",
        "</div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "fQ4rYeWnTZ4C",
        "outputId": "a3d33ca8-143d-491b-df2d-736b6401ad5c"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([-2.82740324, -2.72198694, -2.66664357, ...,  1.85226769,\n",
              "        1.89011781,  1.96884864])"
            ]
          },
          "metadata": {},
          "execution_count": 13
        }
      ],
      "source": [
        "#Get the scores for train set predictions\n",
        "svm_train_scores = svm_clf.decision_function(X_train)\n",
        "\n",
        "from sklearn.metrics import precision_recall_curve\n",
        "precisions, recalls, thresholds = precision_recall_curve(y_train_5, svm_train_scores)\n",
        "\n",
        "thresholds"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "khO4K9ifTZ4D"
      },
      "source": [
        "#### <font color=\"#008080\" face=\"Times New Roman\" size=4>**Visualizing**</font>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 399
        },
        "id": "o5BghOaFTZ4E",
        "outputId": "6660fe69-2a16-44f0-8bd6-90950f5ab71e"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 800x400 with 1 Axes>"
            ],
            "image/png": "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akh5m7c3BAcbRf0exAlYLBb2jthLl6pdAEiyJdFnaR/G/TJOqyCJZFCmk8+FCxcyZswYxo8fz65du6hZsyZt27blwoULabYPDg6mV69ebNiwga1btxIUFESbNm04c+bMHQcvcq24OGNw0fHjxn6DBvDhh6aGJCJOyGKxsPCRhQyqNche987md5izZ46JUYk4jkwnn1OmTGHIkCEMGjSIu+66i5kzZ+Lj48MXX3yRZvuvv/6aJ554glq1alG1alU+++wzrFYr69atu+PgRa41Zgxs2mRsFy8OS5aAp6e5MYmIc/Jw9WB2p9k8UfcJe93QH4ey4dgGE6MScQxumWkcHx/Pzp07GTdunL3OxcWFVq1asXXr1gydIzo6moSEBAoVKnTTNnFxccRdMzghPDwcgISEBBISEjITskNL/qx56TPfrqgoWL/eDbDg6Wlj8eIkiha14UhfOqe83jExuDVpAkDir7/q0fs1nPJ650FT20wlJiGGOX/OIcmWROdvOxPcP5jqRaunaqfrnbfk1eud0c9rsWWik8rZs2cpWbIkW7ZsoWHDhvb6F154gY0bN/LHH3+ke44nnniC1atX8/fff+N1kxVPXn/9dSZMmHBD/YIFC/Dx8clouJLHhId78Oab9/Hgg8dp2fKk2eEI4BobS8eePQH46dtvSdIqR+KEkmxJTDgygb8i/wLA28Wbtyq+RXmf8iZHJpKzoqOj6d27N2FhYeTPn/+m7TJ15/NOvfPOO3z77bcEBwffNPEEGDduHGPGjLHvh4eH2/uK3urDOJuEhATWrl1L69atcXd3Nzsch9CtG3h43APcY3YomeaU1zspicSffwagbYsWWuXoGk55vfOwprFNaTS3Ef+G/kuMNYbPQj9jW9dteLh6ALreeU1evd7JT6rTk6nkMyAgAFdXV86fP5+q/vz58wQGBt7y2Pfee4933nmHX375hRo1atyyraenJ55pdNZzd3fPUxcxWV793OlZuxbuuw/8/FLqnOHL5FTX290d2rUzO4pczamudx4W4B7AH0P+oNncZvx1/i/+ufQPT6x6grmd52KxWOztdL3zlrx2vTP6WTM14MjDw4M6deqkGiyUPHjo2sfw15s0aRJvvvkmq1atom7dupl5S5E0LVli5DRt2sDVq2ZHIyICBbwK8PlDn9v35/85nzGrx9ziCJG8KdOj3ceMGcPs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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "def plot_precision_recall_vs_threshold(precisions, recalls, thresholds):\n",
        "    plt.plot(thresholds, precisions[:-1], \"b--\", label=\"Precision\", linewidth=2)\n",
        "    plt.plot(thresholds, recalls[:-1], \"g-\", label=\"Recall\", linewidth=2)\n",
        "    plt.legend(loc=\"center right\", fontsize=16)\n",
        "    plt.xlabel(\"Threshold\", fontsize=16)\n",
        "    plt.grid(True)\n",
        "    plt.axis([-2.5, 2.5, 0, 1])\n",
        "\n",
        "\n",
        "\n",
        "recall_90_precision = recalls[np.argmax(precisions >= 0.90)]\n",
        "threshold_90_precision = thresholds[np.argmax(precisions >= 0.90)]\n",
        "\n",
        "\n",
        "plt.figure(figsize=(8, 4))\n",
        "plot_precision_recall_vs_threshold(precisions, recalls, thresholds)\n",
        "plt.plot([threshold_90_precision, threshold_90_precision], [0., 0.9], \"r:\")\n",
        "plt.plot([-2.5, threshold_90_precision], [0.9, 0.9], \"r:\")\n",
        "plt.plot([-2.5, threshold_90_precision], [recall_90_precision, recall_90_precision], \"r:\")\n",
        "plt.plot([threshold_90_precision], [0.9], \"ro\")\n",
        "plt.plot([threshold_90_precision], [recall_90_precision], \"ro\")\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 553
        },
        "id": "TVcDsnNKTZ4G",
        "outputId": "40efeece-fd39-429a-b148-3d7217e793c7"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 800x600 with 1 Axes>"
            ],
            "image/png": "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PGV07Sr98INZ37XL2likaibEo0aNOuk1AAAAcCotWnjrdetaF0cJPlQHAADgRImJ0oED3rqNtG5tdQS+/D6YozK7du3SwoULtWnTpmANAQAAgMq4XFKjRmax2dHNZd1wg9UR+JkQf/DBB7r66qu1bt06n/YnnnhC7dq109VXX61u3bpV62kUAAAAcLaff7Y6Al9+JcT/+te/tGTJEnXs2LG0bevWrbr33ntlGIa6dOmixMREvfLKK/rPf/7jd7AAAACoooIC6W9/M4vNjm5+5BHf6y1brImjhF8J8caNG9WlSxeddtpppW2vvfaaJOmZZ57Rhg0b9OWXXyo6Olpz5871L1IAAABUnccjTZliFo/H6mh8REf7Xv+WPlrGr4Q4MzNTzZs392lbtWqVEhISdOONN0qSOnTooL59++q7777zZygAAABUR0yMNGaMWWx4dPOtt3rrVh/M4VdCnJeXp+gyKX5RUZE2bNignj17Ki4urrS9WbNm2r9/vz9DAQAAoDrcbun5583idlsdTTm9elkdgZdfCXHjxo31/fffl16vXbtWubm56tOnj0+/3Nxc1bLRw6ABAACAEn4lxL1799b//vc/zZ8/X0ePHtW0adPkcrk0cOBAn35btmxRM6vXwgEAAIAK+JUQ33PPPYqJidGIESPUoEEDffTRRzrvvPN04YUXlvb56aeftHXrVp1//vl+BwsAAIAqys42j2uuVcuso1J+JcTnnXeeFi9erP79+6tjx4668cYb9eGHH/r0eeutt1S3bl1dcsklfgUKAACAasrJMQtOyu+PHF5yySUnTXb/8pe/6C9/+Yu/wwAAAKA6EhKkXbu8dVTKfs/gAAAAgP+ioqRWrayOokq+/NLa8f3aMgEAAADUxKFD3vq8eZaFIamaK8QXX3yxXC6XXnnlFZ1++um6+OKLq/xel8ulFStWVDtAAAAA1IDHI82ZY9bHj5diY62N5wR2et5CtRLiVatWyeVyKee3zdmrVq2q8ntdLle1AgMAAIAfCgqkO+8062PH2i4h7tzZW09JsS4OqZoJ8cqVKyVJLVq08LkGAACAzURHS8OHe+s2U7eut/7TT9bFIVUzIe7fv/9JrwEAAGAT8fHSa69ZHcVJuVySYVgdBR+qAwAAgEXskAxLfibEhw8f1urVq7V3795K++zdu1erV6/WkSNH/BkKAAAADtOwobdu5fkhfiXEs2bN0oABA7Rv375K++zbt08DBgzQnJJPOQIAACD4srOlRo3MYtOjm8s+eu34cevi8CshXrx4sVq3bq3u3btX2qd79+4644wzyh3pDAAAgCDLzDSLTbVt663/+KN1cfiVEO/evVvt27c/Zb8OHTpoV8nRgQAAAAi+hATp22/NYtOjm8tumbDyCb1+JcRZWVmqW/aZGZWoU6cOe4gBAABCKSpKOusss0TZ8zkKJ9lkEFJ+fXcaNWqkrVu3nrLftm3b1KBBA3+GAgAAAILCr4T4ggsu0KZNm7R69epK+3z66afauHGjLrjgAn+GAgAAQHV4PNLzz5vF47E6mlPas8e6sf1KiG+99VYZhqFrrrlGCxcuLPf6woULdc0118jlcumWW27xZygAAABUR0GBdPPNZikosDqaCm3a5K3n5loWRvVOqjvRxRdfrAkTJmj27Nm6+uqrlZSUVPohu+3bt+vgwYMyDEO33nqrBg8eHJCAAQAAUAXR0dJVV3nrNpSaKq1ZY9ZjY62Lw6+EWJL+/ve/q23btnr44Yd18OBBHTx4sPS1pKQk3X///br99tv9HQYAAADVER8vLVhgdRQnVauWt757t2Vh+J8QS9Jtt92mcePG6auvvtKPvz1ErkWLFurevbuibfo3EgAAAFhr/35v/cAB6+IISEIsSdHR0erRo4d69OgRqFsCAADAwcoeZ5GUZF0cAUuIJWnHjh06ePCgGjZsqHbt2gXy1gAAAKiOnBypUyezvnmzlJhobTwVKHswh2FYF4ffT2kuKirSI488oiZNmqh9+/bq27evHn300dLXX3vtNfXu3Vvfffedv0MBAACgqgzDPA/5xx+tzTar6L77rBvbr4S4qKhIl19+udLS0nT48GF17NhRxgnf8D59+mjt2rV67733/AoUAAAA1RAfL61bZ5b4eKujqZBd8nS/EuJnn31WS5cu1YABA7Rr1y59++235fq0atVKZ555ppYtW+bPUAAAAKiO6Gjp/PPNYtOHHAwaZHUEJr8S4ldeeUUNGjTQ22+/rWbNmlXar2PHjtpj5fEjAAAAsJ2yj12zkl8J8datW9WjRw/Vr1//pP3q1q2rA1Y+SwMAACDSFBZKr71mlsJCq6OxNb+eMlFUVCS3233Kfvv27atSPwAAAARIfr70//6fWR86VIoJ6MPFHMWv70zLli319ddfn7SPx+PRt99+q7Zt2/ozFAAAAKojKkoaONBbt6mePaUvvrA2Br++O5deeql2796tuXPnVtrnH//4hw4ePKjLLrvMn6EAAABQHQkJ0vLlZklIsDoaW/MrIZ40aZLq1q2rcePG6Y477tDnn38uScrOztaGDRt077336t5771VSUpImTJgQkIABAADgHB6Pt37smDUx+JUQN23aVAsWLFC9evX097//Xf369ZPL5dI777yj888/X48//rhq166td999V0lWnscHAAAAW9qwwVs/dMiaGPzeUHLhhRfqu+++0913362zzjpLCQkJcrvdatOmjf785z/rm2++Ud++fQMRKwAAAKoqJ0c66yyz5ORYHU2lhg2zOgI/P1S3Z88euVwupaSk6NFHH/U5shkAAAAWMgxp82Zv3aZcLm89O9uaGPxaIW7VqpX++Mc/BioWAAAABEp8vLRypVlsenSzJH3zjbf+00/WxODXCnGdOnV0xhlnBCoWAAAABEp0tHTRRVZHcUrnnCN9951Zj4uzJga/Vog7deqkn6xK5QEAABD2WrXy1tevtyYGvxLisWPH6rPPPtOXX34ZqHgAAAAQCIWF0oIFZrHx0c1bt3rr//63NTH4lRCPHj1a48aN0+DBgzVt2jRt27ZN+fn5gYoNAAAANZWfL/3+92axcX7WpYu3HhtrTQx+7SGOjo4urT/wwAN64IEHKu3rcrlUaOO/nQAAADhKVJTUu7e3blPXXSc99JBZb9/emhj8SoiNajzCozp9AQAA4KeEBOmzz6yO4pTKnipdXGxNDH79daG4uLhaBQAAAKjMW29ZM26NVoh37Nih9957T7t375bb7VbXrl117bXXKqFsig8AAACcQr163npiojUxVDshnjlzpu6++24VFRX5tE+ZMkWLFy9W586dAxYcAAAAaig3V7rwQrO+erXv3gQbKZsQW3XCdLW2TKxZs0Z/+ctfVFhYqMTERHXt2lVnnnmmXC6Xfv75Z/3hD38I6NaIOXPmqFWrVoqPj1fPnj21bt26Kr1v/vz5crlcGjp0aMBiAQAACCvFxeaDfdevt25zbhWVPefthDXXkKhWQjx79mwZhqFRo0Zp//79Wr9+vbZv364NGzbozDPP1I4dO7RkyZKABPbmm29q4sSJSktL04YNG9SlSxelpqbqwIEDJ33f7t27ddddd6lfv34B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01+SUlNTK+0P+6jJfJ8oJydHHo9HDRo0CFaYCJCazvdf//pXNW7cWH/6059CESYCpCbz/cEHH6hXr14aP368kpOT1blzZ02bNk1FRUWhChs1VJP57t27t7766qvSbRU7d+7U4sWLNWTIkJDEjNAKVL5m25PqAikzM1NFRUWlp9yVSE5O1tatWyt8z/79+yvsv3///qDFicCoyXyf6J577lGzZs3K/ZDBfmoy32vWrNGLL76oTZs2hSBCBFJN5nvnzp365JNPNGLECC1evFg7duzQuHHj5PF4lJaWFoqwUUM1me/hw4crMzNTffv2lWEYKiws1C233KL77rsvFCEjxCrL17KyspSbm6uEhIQq3SciVoiB6nj00Uc1f/58vf/++4qPj7c6HATYsWPHdMMNN+j5559XUlKS1eEgBIqLi9W4cWPNnTtX3bp107Bhw3T//ffr2WeftTo0BMGqVas0bdo0PfPMM9qwYYPee+89LVq0SA8//LDVocHGImKFOCkpSdHR0crIyPBpz8jIUJMmTSp8T5MmTarVH/ZRk/ku8eSTT+rRRx/Vxx9/rHPOOSeYYSJAqjvfP/zwg3bv3q0rrriitK24uFiSFBMTo23btunMM88MbtCosZr8fDdt2lSxsbGKjo4ubevYsaP279+vgoICxcXFBTVm1FxN5vuBBx7QDTfcoDFjxkiSzj77bGVnZ+vmm2/W/fffr6go1gKdpLJ8rU6dOlVeHZYiZIU4Li5O3bp104oVK0rbiouLtWLFCvXq1avC9/Tq1cunvyQtX7680v6wj5rMtyQ9/vjjevjhh7VkyRJ17949FKEiAKo73x06dNA333yjTZs2lZYrr7xSAwYM0KZNm5SSkhLK8FFNNfn57tOnj3bs2FH6Fx9J2r59u5o2bUoybHM1me+cnJxySW/JX4bMz2nBSQKWr1Xv837ha/78+Ybb7TbmzZtnbN682bj55puNevXqGfv37zcMwzBuuOEG49577y3t/9lnnxkxMTHGk08+aWzZssVIS0vjsWthpLrz/eijjxpxcXHGO++8Y+zbt6+0HDt2zKovAdVQ3fk+EU+ZCC/Vne89e/YYp512mjFhwgRj27Ztxocffmg0btzYeOSRR6z6ElAN1Z3vtLQ047TTTjPeeOMNY+fOncayZcuMM88807juuuus+hJQDceOHTM2btxobNy40ZBkzJgxw9i4caPx448/GoZhGPfee69xww03lPYveezapEmTjC1bthhz5szhsWun8o9//MNo0aKFERcXZ/To0cNYu3Zt6Wv9+/c3Ro0a5dP/rbfeMtq1a2fExcUZZ511lrFo0aIQRwx/VGe+W7ZsaUgqV9LS0kIfOGqkuj/fZZEQh5/qzvfnn39u9OzZ03C73Ubr1q2Nv/3tb0ZhYWGIo0ZNVWe+PR6P8dBDDxlnnnmmER8fb6SkpBjjxo0zDh8+HPrAUW0rV66s8P/HJXM8atQoo3///uXec+655xpxcXFG69atjZdffrna47oMg38/AAAAQOSKiD3EAAAAQGVIiAEAABDRSIgBAAAQ0UiIAQAAENFIiAEAABDRSIgBAAAQ0UiIAQAAENFIiAEAABDRSIgBIMhatWoll8vlU9xut04//XRdddVV+vDDD60OsdpKvo4TXXTRRXK5XFq1alXogwKAGoqxOgAAiBR9+vRRmzZtJElHjx7Vxo0b9cEHH+iDDz7QnXfeqRkzZlgcIQBEJhJiAAiRMWPG6MYbbyy9Liws1J133qnZs2fr6aef1vXXX6/zzz/fugABIEKxZQIALBITE6MnnnhCderUkST95z//sTgiAIhMJMQAYKH4+Hi1bdtWkpSRkVHu9RUrVujqq69W06ZNFRcXp8aNG+v3v/+90tPTK71nTk6OZs6cqb59+6p+/fpyu91q2bKlrrjiCr3++us+fX/88Uc99thjuvjii9WiRQu53W7Vq1dPffv21XPPPafi4uLAfsEAYENsmQAAi2VlZUmSkpOTfdrvuusuPfXUU4qKilL37t3Vr18/7dmzRwsXLtR//vMfPf/88xo9erTPe3766Sddeuml2rx5sxITE9WnTx81bNhQe/fu1aeffqpvvvlGw4cPL+3/73//Ww888IDOOOMMtWvXTn369NG+ffuUnp6uzz77TMuWLdM777xT4QfoAMApSIgBwEJbtmzRzp07JUlXXnllafvzzz+vp556Sm3atNG7776rc845p/S11atX6/LLL9ctt9yivn37lq4wFxcX6+qrr9bmzZs1ePBgvfrqq2rUqFHp+/Ly8vTJJ5/4jJ+amqqhQ4eqc+fOPu2//PKLhgwZovfee0/vvPOOrr322oB/7QBgF2yZAAALHD16VMuWLdPVV1+toqIiTZkyRd27d5dkJrYPPfSQJGn+/Pk+ybAkXXjhhXrggQdUUFCg5557rrT9P//5j9avX6+mTZvq3Xff9UmGJXN7xpAhQ3zazj///HLJsCQ1a9ZMjz/+uCTp7bff9vvrBQA7Y4UYAEJk9OjR5bY4REdH69VXX9WIESNK2zZu3KhffvlFZ555prp161bhvS666CJJ0ueff17atmTJEknS8OHDVbt27SrHlZ+fr2XLlunLL7/UgQMHlJ+fL8MwdOzYMUnStm3bqnwvAAhHJMQAECJln0N88OBBffrppzp27JhuvfVWtW3bVj169JCk0i0UP/zwwyn37h48eLC0/uOPP0qSOnToUOWY1q5dq2HDhmnPnj2V9inZ4wwATkVCDAAhcuJziI8eParf//73Wrlypa677rrSD8KVPNmhSZMmSk1NPek9k5KSahxPTk6Ohg4dqoyMDI0ePVq33nqr2rRpozp16ig6Olrbt29X+/btZRhGjccAgHBAQgwAFqlbt67efPNNdejQQT/++KNmzJihKVOmKCUlRZLUsGFDzZs3r8r3a9GihSRp69atVeq/evVqZWRk6LzzztNLL71U7vXvv/++ymMDQDjjQ3UAYKFGjRppypQpkqQnn3xSR44c0fnnn6+kpCRt3rxZ3333XZXvdemll0qS3njjDWVnZ5+y/6+//irJm0if6NVXX63y2AAQzkiIAcBi48aNU4sWLXT06FE99dRTio2NVVpamgzD0O9//3utWbOm3HuKior0ySefaO3ataVtV155pbp27apffvlF1157rQ4dOuTznry8PH300Uel1x07dpRkHv6xefNmn75z587Vm2++GcgvEwBsi4QYACzmdrtLH7M2a9Ys/frrr5owYYImTZqk77//Xv369VPnzp01dOhQXX/99RowYICSkpJ0ySWXaNOmTaX3iYqK0vvvv6/27dvro48+UosWLZSamqrhw4erf//+atKkiW699dbS/l27dtVVV12lY8eOqWvXrkpNTdX111+vjh076pZbbtF9990X4u8EAFiDhBgAbGDkyJHq1KmTjh07pieeeEKS9Pjjj+uzzz7TiBEjdPz4cS1ZskSLFi3SL7/8oosuukgvvPCChg0b5nOfli1bav369Xrsscd01llnKT09Xe+9955+/PFH9e/fX4899phP/7fffltPPPGE2rdvrzVr1mjZsmVq0aKFli5dqjFjxoTs6wcAK7kMPj4MAACACMYKMQAAACIaCTEAAAAiGgkxAAAAIhoJMQAAACIaCTEAAAAiGgkxAAAAIhoJMQAAACIaCTEAAAAiGgkxAAAAIhoJMQAAACIaCTEAAAAiGgkxAAAAItr/B/LsIE0csE2yAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "def plot_precision_vs_recall(precisions, recalls):\n",
        "    plt.plot(recalls, precisions, \"b-\", linewidth=2)\n",
        "    plt.xlabel(\"Recall\", fontsize=16)\n",
        "    plt.ylabel(\"Precision\", fontsize=16)\n",
        "    plt.axis([0, 1, 0, 1])\n",
        "    plt.grid(True)\n",
        "\n",
        "plt.figure(figsize=(8, 6))\n",
        "plot_precision_vs_recall(precisions, recalls)\n",
        "plt.plot([recall_90_precision, recall_90_precision], [0., 0.9], \"r:\")\n",
        "plt.plot([0.0, recall_90_precision], [0.9, 0.9], \"r:\")\n",
        "plt.plot([recall_90_precision], [0.9], \"ro\")\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "bXmJOSH-TZ4H"
      },
      "source": [
        "#### <font color=\"#008080\" face=\"Times New Roman\" size=4>**Test**</font>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "67U5RXfcTZ4I",
        "outputId": "3079282a-39b2-4838-8293-ec53716947a2"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Threshold value for 90% recall = -2.8274032359600163\n",
            "Precision = 0.9001044932079415\n",
            "Recall = 0.9152146196345091\n"
          ]
        }
      ],
      "source": [
        "# find a suitable condition for achieving 90% recall based on trade off and check the result\n",
        "threshold_90_recall = thresholds[np.argmax(recalls >= 0.90)]\n",
        "print(\"Threshold value for 90% recall =\", threshold_90_recall)\n",
        "\n",
        "svm_y_train_pred_90 = (svm_train_scores >= threshold_90_precision)\n",
        "print(\"Precision =\", precision_score(y_train_5, svm_y_train_pred_90))\n",
        "print(\"Recall =\", recall_score(y_train_5, svm_y_train_pred_90))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "2sEJIt5hTZ4J"
      },
      "source": [
        "<font face=\"Times New Roman\"><div id=\"1-4\">\n",
        "## <font color=\"#800080\" size=6>**1-4. ROC (ROC Curve)**</font>\n",
        "</div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 17,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 553
        },
        "id": "DgwVdfH0TZ4K",
        "outputId": "3a1f89f2-a9b0-40dc-8b3a-b70da8e288cd"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 800x600 with 1 Axes>"
            ],
            "image/png": "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GQO1Wg1/f3+UK1fO2JnzlPD20s3Nm+u2pCTpQhERkVmrWLEiVqxYgeXLl2Pbtm2wt7eXOhJRoWLwCPzevXvj/Pnz6N27N4oWLQpRFCGKIpRKJbp3747Tp0/js88+M2bWfPHO0s2nTuk2Lt1MRET5RKvVYvHixThz5ox+3+DBgzFmzBgOkSDKA7maWLdWrVoICAiAKIqIioqCVqst8FO+pPtnRqEAdux43SYiIspjkZGR8PHxwf79+1G+fHlcu3YNRYoUkToWUaFmlMpVEAQ4ODjA0dExXTH8559/FriVctL94m1hAfToodu4KAcREeWxv/76C+7u7ti/fz+USiW++eYb2NraSh2LqNDLk67cY8eOoU2bNujYsSNOnz6dF6fIM/xTFBER5TetVov58+ejbdu2ePr0KapVq4azZ89i2LBh/LlElA+y3e2ZkpKC5cuX448//kBERAScnJzwySefYMyYMbCysgIAXL16FV9++SUOHz4MURRhYWGBIUOG5Fn4vJDunx2NBjh+XNdu2RIoYIuMEBGR6YuPj0fPnj1x6NAhAMCAAQPw888/c5gEUT7KVkGsVqvRoUMHnDx5EqIoAgBu376N48eP4+DBg9i/fz9++eUXTJgwASqVCgDg6emJefPmoXLlynmXPg+k+0U8ORlo21bXjo8H+GcrIiIyMltbW1hbW8Pa2ho///wzfH19pY5EZHayVRCvWrUKJ06cAAB06NABderUQWxsLP78808cPHgQY8aMwS+//AIAaNWqFX766SfUq1cv71LnoXTTrgkCULPm6zYREZERaDQapKamwtraGoIgYP369QgPD0fNtJ85RJSvslUQBwUFQRAEbN26FZ6envr9qamp6NmzJ1auXAlBEDBp0iR89913eRY2P6Sre21sgOvXJctCRESFz7Nnz9C3b1+4uLjgt99+gyAIKFGiBEqUKCF1NCKzla2b6q5fv466deumK4YBwMrKCvPnz4coinB1dcXChQvzJGR+Yj8wERHllYMHD6Ju3boICQnBzp07ce/ePakjERGyWRBHR0ejevXqGT5Xo0YNAECDBg0Kx52wheEzEBGRSVGr1fjmm2/QqVMnREZGok6dOvj7779RqVIlqaMREbJZEGs0GiiVygyfS5thws7OznipJJSuHk5KAjp00G1cupmIiAzw+PFjtGvXDgsWLIAoihgxYgTO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9u3bUa9ePZw/fx729vbYuXMni2EiIiIiI2IPcVY0GmDXrtftfJSSkoKvvvoKy5cvBwA0adIEAQEBKF++fL7mICIiIirsWBBnxcoKWLXqdTsf9evXD//73/8AAJMmTcL8+fNhaWmZrxmIiIiIzAEL4qxYWgLDhkly6ilTpuDUqVNYvXo1unbtKkkGIiIiInPAgthEJCUl4dy5c2jdujUAoGHDhrh37x6USqXEyYiIiIgKN95UlxWtFrh+XbdptXl2mtu3b6NJkybo2LEjQkND9ftZDBMRERHlPRbEWUlKAmrV0m1JSXlyis2bN8PDwwNXrlyBnZ0doqOj8+Q8RERERJQxDpl4yzsLNDs45Ml5EhMTMW7cOKxduxYA0KZNG2zevBllypTJk/MRERERUcZYEGfF1haIjDT62964cQOenp64fv06BEHAjBkz8O2330Iulxv9XERERESUNRbEEti1axeuX78OZ2dnbN68Ge3atZM6EhEREZHZYkEsgcmTJyMhIQGff/45nJycpI5DREREZNZ4U11WkpOBfv10Wy6Wbr569Sp69+6NpP9uzJPL5Zg3bx6LYSIiIiITwII4KxoNsGWLbjNg6WZRFLF69Wo0atQIv//+O2bNmmX8jERERESUKxwykRUrK+Cnn163cyA2NhYjRoxAQEAAAKBTp0746quvjJ2QiIiIiHKJBXFWLC2BL77I8csuXboET09P3LlzB3K5HAsWLMBXX30FmYwd8kRERESmhgWxke3YsQPe3t5ITU2Fq6srAgIC0KxZM6ljEREREVEmWBBnRasFHj7UtcuVA7LRw9ugQQMUKVIEzZs3x/r161GyZMk8DklEREREucGCOCtJSUCFCrp2fLxuoY4MPHnyBC4uLgAAV1dXnDt3DhUrVoQgvLPuHRERERGZGA5qfR8bG92WAVEUsXTpUlSsWBG7d+/W769UqRKLYSIiIqICggXxW9IVsra2QEKCbnurd/jly5f49NNP8cUXXyA1NTVdQUxEREREBQcLYgOcOXMG9erVw65du2BlZYVly5Zh9erVUsciIiIiIgOwIM4BrVaLH374AS1btsTDhw9RqVIlnDp1CmPHjuUQCSIiIqICigVxVlJSgGHDdFtKCv766y9MmjQJarUanp6euHjxIjw8PKROSURERES5wFkmsqJWA2vW6NpLlqBNmzYYP348qlev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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "# it is like precision-recall curve, it shows recall based on false positive rate\n",
        "from sklearn.metrics import roc_curve\n",
        "\n",
        "fpr, tpr, thresholds = roc_curve(y_train_5, svm_train_scores)\n",
        "\n",
        "def plot_roc_curve(fpr, tpr, label=None):\n",
        "    plt.plot(fpr, tpr, linewidth=2, label=label)\n",
        "    plt.plot([0, 1], [0, 1], 'k--') # dashed diagonal\n",
        "    plt.axis([0, 1, 0, 1])\n",
        "    plt.xlabel('False Positive Rate (Fall-Out)', fontsize=16)\n",
        "    plt.ylabel('True Positive Rate (Recall)', fontsize=16)\n",
        "    plt.grid(True)\n",
        "\n",
        "plt.figure(figsize=(8, 6))\n",
        "plot_roc_curve(fpr, tpr)\n",
        "fpr_90 = fpr[np.argmax(tpr >= recall_90_precision)]\n",
        "plt.plot([fpr_90, fpr_90], [0., recall_90_precision], \"r:\")\n",
        "plt.plot([0.0, fpr_90], [recall_90_precision, recall_90_precision], \"r:\")\n",
        "plt.plot([fpr_90], [recall_90_precision], \"ro\")\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "GI8tuDwxTZ4L"
      },
      "source": [
        "<font face=\"Times New Roman\"><div id=\"1-4-1\">\n",
        "### <font color=\"#800080\" size=5>**1-4-1. AUC**</font>\n",
        "</div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 18,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "CXP3CEPbTZ4M",
        "outputId": "4efe321f-326e-4a91-ea22-2611180782eb"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "AUC = 0.9916184997517591\n"
          ]
        }
      ],
      "source": [
        "from sklearn.metrics import roc_auc_score\n",
        "print(\"AUC =\", roc_auc_score(y_train_5, svm_train_scores))"
      ]
    }
  ],
  "metadata": {
    "colab": {
      "collapsed_sections": [
        "rYaiPL1plrDm",
        "swwrxuSMAESj",
        "gYuiA7fFAESk",
        "helJaWTOAESk",
        "0BrjWqO-AESk",
        "E5LZv8WxAESl",
        "gSvKw0pdAESm",
        "DCicBNv3AESm",
        "rpEZrgzGAESn",
        "68iIHGEgAl1w",
        "hXPBaNz8Al1x",
        "M0vNkt4dAl1x",
        "_8eHSEgJAl1x",
        "14oWGLnbAl1y",
        "osVXNTRxAl1y",
        "UNVQE4NhAl1z",
        "SULBwRA6Al10",
        "OZyxj4cjnzW_",
        "eVbZVyBbDA_0",
        "8Iel5jWADA_0",
        "sk45TUlPDA_1",
        "Jsg8bozFDA_1",
        "VQ5QM-42DA_1",
        "UYJC961EDA_2",
        "3pZCWtkeo2Q_",
        "BG6JDKXAKthv",
        "I3TA7qSXJJug",
        "vORapzaoJJug",
        "2JNOCPY3JJuh",
        "3bDvO3dZJXLK",
        "DdttC2gIJhFv",
        "d1zcyxjIJnxg",
        "PcxB-PgbJ1FT",
        "TOn8ae25J-Px",
        "RnJ3PbxLKkyu",
        "JGusVztLLKHA",
        "D2hHo3jxLKHA",
        "GYdgEkdDLKHB",
        "L-YMqtB5LKHB",
        "B-nGWBOrIrDe",
        "1kwiWMyhL0Cw",
        "EcUj0p-zL0Cw",
        "ZpIDH-M4L0Cx",
        "950JsRNjMAny",
        "iOPf8PsJMHZ4",
        "a6xyh9qQMNUh",
        "HBT59RLpIyUY",
        "XjRZm_smMaVe",
        "GjQTvUPCNGiw",
        "FnHgYu6jNcNn",
        "UuhpDpAfNhYJ",
        "sb5j_Pm8NrmT",
        "0fK-03_HNula",
        "sq_TTicpN0Rz",
        "1TgrioWuqBHB",
        "DXDtIWVI8y1_",
        "fnaXSgAZ-RoF",
        "OuleUT7a-aLd",
        "v3vX2AMI-jCL",
        "NB7H40DRqdBB",
        "0VlisYKK1BZ_",
        "lDvUSGJx15Dj",
        "PHHocSy32QI1",
        "Q7t6YQtj2Kgg",
        "n2JfuA9Wrqc4",
        "5mJ6zlBgsQVA",
        "TukJ4C4HsQVA",
        "f57VmUBasQVA",
        "HX4ZzxDNsQVB",
        "ze7ht2dosQVB",
        "vkmW7nLxtTbU",
        "VEqcnt5hwNdd",
        "fSjtED4lwXGX",
        "8p7waG2NwXN_",
        "0RYjgiwjzwKx",
        "LBfyqilLwXVo",
        "XDcH1G2wxDoG"
      ],
      "provenance": []
    },
    "kernelspec": {
      "display_name": "local-venv",
      "language": "python",
      "name": "local-venv"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.10.6"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}